// Copyright 2011 Jefferson Willian
// willmont7@gmail.com

#include <cstdio>

int board[7][8];     // Matriz de entrada(domino)
bool used[8][9];     // Tabuleiro que indica as posicoes ocupadas
bool domino[7][7];   // Indica quais pecas foram usadas
int ret;             // Numero de tabuleiros diferentes(saida do programa)

/* Verifica se eh um tabuleiro valido */
bool verifyWin() {
  for (int i = 0;i < 7;i++)
    for (int j = 0;j < 7;j++)
      if (!domino[i][j])
        return false;

  return true;
}

/* Resolve o problema */
void solve(int x, int y) {
  /* Verifica se precisa mudar de linha */
  if (y > 7) {
    solve(x+1, 0);
    return;
  }

  /* Verifica se chegou ao fim da montagem do tabuleiro */
  if (x == 6 && y == 7) {
    if (verifyWin())
      ret++;
    return;
  }

  /* Verifica se eh uma posicao ocupada */
  if (used[x][y]) {
    solve(x, y+1);
    return;
  }

  /* Verifica se eh possivel colocar a peca 'deitada' */
  if (!used[x][y+1] && !domino[board[x][y]][board[x][y+1]]) {
    domino[board[x][y]][board[x][y+1]] = true;
    domino[board[x][y+1]][board[x][y]] = true;
    used[x][y] = true;
    used[x][y+1] = true;
    solve(x, y+1);
    domino[board[x][y]][board[x][y+1]] = false;
    domino[board[x][y+1]][board[x][y]] = false;
    used[x][y] = false;
    used[x][y+1] = false;
  }

  /* Verifica se eh possivel colocar a peca 'em pe' */
  if (!used[x+1][y] && !domino[board[x][y]][board[x+1][y]]) {
    domino[board[x][y]][board[x+1][y]] = true;
    domino[board[x+1][y]][board[x][y]] = true;
    used[x][y] = true;
    used[x+1][y] = true;
    solve(x, y+1);
    domino[board[x][y]][board[x+1][y]] = false;
    domino[board[x+1][y]][board[x][y]] = false;
    used[x][y] = false;
    used[x+1][y] = false;
  }

  return;
}

int main() {
  int n;
  int games = 1;

  scanf("%d", &n);

  while (n) {
    for (int i = 0;i < 7;i++)
      for (int j = 0;j < 8;j++) {
        scanf("%d", &board[i][j]);
        used[i][j] = false;
      }

    for (int i = 0;i < 8;i++)
      used[i][8] = true;

    for (int i = 0;i < 9;i++)
      used[7][i] = true;

    for (int i = 0;i < 7;i++)
      for (int j = 0;j < 7;j++)
        domino[i][j] = false;

    ret = 0;

    solve(0, 0);

    printf("Teste %d\n%d\n\n", games++, ret);

    n--;
  }

  return 0;
}
